Public Member Functions | |
| __construct ($fileManager=null) | |
| setFileManager ($filemanager) | |
| getSubFolder ($p_folder) | |
| getFiles ($folderID, $sortString="create_time", $desc=false) | |
| getNewestFiles ($limit=20) | |
| getMostRatedFiles ($limit=20) | |
| getFileByID ($fileID) | |
| getFolderByID ($folderID) | |
| getUserCourses ($userID) | |
| countSubElements ($folderID, $subFolders=true) | |
| getCourseShortNameByID ($courseID) | |
| logResourceDownload ($resourceID) | |
Static Public Member Functions | |
| static | getVisibilityConstraintSQL () |
| static | saveFolderState ($folder) |
Private Member Functions | |
| getFileObject ($db_object) | |
| getFolderObject ($folder_db) | |
Private Attributes | |
| $fileManager = null | |
Definition at line 28 of file class.ressourcendb.inc.php.
| RessourcenDB::__construct | ( | $ | fileManager = null |
) |
Definition at line 31 of file class.ressourcendb.inc.php.
References $fileManager.
00031 { 00032 $this->fileManager = $fileManager; 00033 }
| RessourcenDB::countSubElements | ( | $ | folderID, | |
| $ | subFolders = true | |||
| ) |
Definition at line 217 of file class.ressourcendb.inc.php.
References $db, and getVisibilityConstraintSQL().
00217 { 00218 global $db; 00219 $count = 0; 00220 $folderID = Data::toMysql( $folderID ); 00221 $sql_add = self::getVisibilityConstraintSQL(); 00222 if ($subFolders) { 00223 $folders = $db->get_col("SELECT fileID FROM filelist WHERE type='folder' AND parent_object='".$folderID."' ".$sql_add); 00224 if ($folders) foreach($folders as $folder) { 00225 $count+= $this->countSubElements($folder); 00226 } 00227 } 00228 $count+= $db->get_var("SELECT COUNT(*) FROM filelist WHERE type!='folder' AND parent_object='$folderID' $sql_add"); 00229 return $count; 00230 }
| RessourcenDB::getCourseShortNameByID | ( | $ | courseID | ) |
Get short course name.
| Integer | $courseID Course id |
Definition at line 239 of file class.ressourcendb.inc.php.
References $db.
00239 { 00240 global $db; 00241 00242 $courseID = Data::toMysql($courseID); 00243 00244 return $db->get_var("SELECT `ShortName` FROM `courses` WHERE `ID` = $courseID"); 00245 }
| RessourcenDB::getFileByID | ( | $ | fileID | ) |
Definition at line 163 of file class.ressourcendb.inc.php.
References $db, and getFileObject().
00163 { 00164 global $db; 00165 $fileID = Data::toMysql( $fileID ); 00166 $file_db = $db->get_row("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE fileID = '$fileID' AND type='file'"); 00167 if ( $file_db ) { 00168 return $this->getFileObject( $file_db ); 00169 } 00170 return false; 00171 }
| RessourcenDB::getFileObject | ( | $ | db_object | ) | [private] |
Definition at line 84 of file class.ressourcendb.inc.php.
Referenced by getFileByID(), getFiles(), getMostRatedFiles(), and getNewestFiles().
00084 { 00085 $file = new File(); 00086 $file->setFileID ( $db_object->fileID ); 00087 $file->setVisibleType ( $db_object->visible_type ); 00088 $file->setUserID ( $db_object->userID ); 00089 $file->setName ( $db_object->name ); 00090 $file->setOrigFileName ( $db_object->orig_filename ); 00091 $file->setType ( $db_object->type ); 00092 $file->setLink ( $db_object->link ); 00093 $file->setSize ( $db_object->size ); 00094 $file->setCounter ( $db_object->counter ); 00095 $file->setCreateTime ( $db_object->create_time ); 00096 $file->setDescription ( $db_object->description ); 00097 $file->setExtension ( $db_object->extension ); 00098 $file->setCourseID ( $db_object->courseID ); 00099 $file->setFileManager( $this->fileManager ); 00100 return $file; 00101 }
| RessourcenDB::getFiles | ( | $ | folderID, | |
| $ | sortString = "create_time", |
|||
| $ | desc = false | |||
| ) |
Definition at line 117 of file class.ressourcendb.inc.php.
References $_SESSION, $db, getFileObject(), and getVisibilityConstraintSQL().
00117 { 00118 global $db; 00119 $course = Data::toMysql( $_SESSION["course"] ); 00120 $direction = ( $desc ) ? "DESC" : "ASC"; 00121 $sortString = Data::toMysql( $sortString ); 00122 $folderID = Data::toMysql( $folderID ); 00123 00124 $sql_add = self::getVisibilityConstraintSQL(); 00125 if ( $sortString == "userID" ) { 00126 $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist LEFT OUTER JOIN user ON (filelist.userID=user.ID) WHERE parent_object='".$folderID."' AND (courseID=$course OR courseID=0) AND type!='folder' $sql_add ". " ORDER BY user.Nachname " . $direction); 00127 } else { 00128 $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE parent_object='".$folderID."' AND (courseID='$course' OR courseID=0) AND type!='folder' ".$sql_add." ORDER BY ".$sortString. " ". $direction); 00129 } 00130 $files = array(); 00131 foreach ( $files_db as $file_db ) { 00132 $files[] = self::getFileObject( $file_db ); 00133 } 00134 return $files; 00135 }
| RessourcenDB::getFolderByID | ( | $ | folderID | ) |
Definition at line 174 of file class.ressourcendb.inc.php.
References $db, and getFolderObject().
00174 { 00175 global $db; 00176 $folderID = Data::toMysql( $folderID ); 00177 $folder_db = $db->get_row("SELECT name, fileID, courseID, link, userID, student_write, create_time, description, visible_type FROM filelist WHERE type='folder' AND fileID='".$folderID."'"); 00178 if ( $folder_db ) { 00179 return $this->getFolderObject( $folder_db ); 00180 } 00181 return false; 00182 }
| RessourcenDB::getFolderObject | ( | $ | folder_db | ) | [private] |
Definition at line 103 of file class.ressourcendb.inc.php.
Referenced by getFolderByID(), and getSubFolder().
00103 { 00104 $folder = new Folder( $folder_db->fileID ); 00105 $folder->setCourseID( $folder_db->courseID ); 00106 $folder->setUserID( $folder_db->userID ); 00107 $folder->setLink( $folder_db->link ); 00108 $folder->setVisibleType( $folder_db->visible_type ); 00109 $folder->setName( $folder_db->name ); 00110 $folder->setStudentWrite( $folder_db->student_write ); 00111 $folder->setCreateTime( $folder_db->create_time ); 00112 $folder->setDescription( $folder_db->description ); 00113 $folder->setFileManager( $this->fileManager ); 00114 return $folder; 00115 }
| RessourcenDB::getMostRatedFiles | ( | $ | limit = 20 |
) |
Definition at line 150 of file class.ressourcendb.inc.php.
References $_SESSION, $db, and getFileObject().
00150 { 00151 global $db; 00152 $time = time(); 00153 $course = Data::toMysql( $_SESSION["course"] ); 00154 $limit = Data::toMysql( $limit ); 00155 $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE courseID='$course' AND visible_type=1 AND type!='folder' AND start_time<'$time' AND end_time>'$time' ORDER BY counter DESC LIMIT $limit"); 00156 $files = array(); 00157 foreach ( $files_db as $file_db ) { 00158 $files[] = self::getFileObject( $file_db ); 00159 } 00160 return $files; 00161 }
| RessourcenDB::getNewestFiles | ( | $ | limit = 20 |
) |
Definition at line 137 of file class.ressourcendb.inc.php.
References $_SESSION, $db, and getFileObject().
00137 { 00138 global $db; 00139 $time = time(); 00140 $course = Data::toMysql( $_SESSION["course"] ); 00141 $limit = Data::toMysql( $limit ); 00142 $files_db = (array) $db->get_results("SELECT fileID, visible_type, userID, name, orig_filename, type, link, size, counter, create_time, description, extension, courseID FROM filelist WHERE courseID='$course' AND visible_type=1 AND type!='folder' AND start_time<'$time' AND end_time>'$time' ORDER BY create_time DESC LIMIT $limit"); 00143 $files = array(); 00144 foreach ( $files_db as $file_db ) { 00145 $files[] = self::getFileObject( $file_db ); 00146 } 00147 return $files; 00148 }
| RessourcenDB::getSubFolder | ( | $ | p_folder | ) |
Definition at line 55 of file class.ressourcendb.inc.php.
References $_SESSION, $db, getFolderObject(), and getVisibilityConstraintSQL().
00055 { 00056 global $db; 00057 $sql_add = self::getVisibilityConstraintSQL(); 00058 $folderID = Data::toMysql( $p_folder->getID() ); 00059 $folders_db = (array) $db->get_results("SELECT courseID, create_time, description, student_write, userID, fileID, link, visible_type, name FROM filelist WHERE parent_object='".$folderID."' AND courseID='".Data::toMysql( $_SESSION['course'] )."' AND type='folder' $sql_add ORDER BY link"); 00060 $folders = array(); 00061 foreach ( $folders_db as $folder_db ) { 00062 $folder = $this->getFolderObject( $folder_db ); 00063 $folder->setParentFolder( $p_folder ); 00064 $folder->setFolderState( $db->get_var("SELECT userID FROM filetreelayout WHERE userID='".Data::toMysql( $_SESSION['userid'] )."' AND folderID='".Data::toMysql( $folder_db->fileID )."'") ); 00065 $folders[] = $folder; 00066 } 00067 return $folders; 00068 }
| RessourcenDB::getUserCourses | ( | $ | userID | ) |
Definition at line 184 of file class.ressourcendb.inc.php.
References $_SESSION, and $db.
Referenced by File::getCopyFileHTML().
00184 { 00185 global $settings, $db; 00186 $userID = Data::toMysql( $userID ); 00187 $courseID = Data::toMysql( $_SESSION['course'] ); 00188 if ($_SESSION['usergroup'] == ADMIN || $_SESSION['usergroup'] == SEKRETARIAT) $sql = "SELECT c.ID, c.ShortName AS SN, u.ShortName 00189 FROM courses AS c 00190 RIGHT JOIN user_course AS uc 00191 ON c.ID = uc.courseID 00192 LEFT JOIN user AS u 00193 ON uc.userID = u.ID 00194 WHERE ((u.Usergroup = 3 AND uc.differentUsergroup = 0) 00195 OR uc.differentUsergroup = 3) 00196 AND c.closed = 0 " . 00197 "AND c.ID <> ". $courseID ." 00198 ORDER BY c.ShortName, c.ID"; 00199 else $sql = "SELECT c.ID, c.ShortName AS SN, u.ShortName 00200 FROM (user_course AS uc1, user AS u) 00201 RIGHT JOIN user_course AS uc2 00202 ON uc1.courseID = uc2.courseID 00203 RIGHT JOIN courses AS c 00204 ON uc1.courseID = c.ID 00205 WHERE ((u.Usergroup = 3 AND uc2.differentUsergroup = 0) 00206 OR uc2.differentUsergroup = 3) 00207 AND uc1.userID = ".$userID." 00208 AND u.ID = uc2.userID 00209 AND c.closed = 0 " . 00210 "AND c.ID <> ". $courseID ." 00211 ORDER BY c.ShortName, c.ID"; 00212 $courses = (array) $db->get_results($sql); 00213 00214 return $courses; 00215 }
| static RessourcenDB::getVisibilityConstraintSQL | ( | ) | [static] |
Definition at line 39 of file class.ressourcendb.inc.php.
References $_SESSION, and $db.
Referenced by countSubElements(), getFiles(), and getSubFolder().
00039 { 00040 global $db, $settings; 00041 $time = Data::toMysql( time() ); 00042 $userid = Data::toMysql( $_SESSION["userid"] ); 00043 $sql_add = ""; 00044 if ($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST || $_SESSION["usergroup"] == SEKRETARIAT) { // Hier darf kein visible_type eingeschraenkt werden, da sonst die Einzeluser-Berechtigung nicht mehr funktioniert !!! 00045 $sql_add = "AND ((filelist.userID='".$userid."' OR (start_time<'$time' AND end_time>'$time' AND visible_type=1))"; 00046 if (isset($_SESSION["assistent"])) // TUTOR 00047 $sql_add = "AND ((visible_type<='2' OR filelist.userID='".$userid."')"; 00048 $visibleFiles = $db->get_col("SELECT fileID FROM filevisible WHERE userID='".$userid."'"); 00049 if ($db->num_rows) $sql_add.= " OR fileID IN (".implode(",", $visibleFiles) .")"; 00050 $sql_add.= ")"; 00051 } 00052 return $sql_add; 00053 }
| RessourcenDB::logResourceDownload | ( | $ | resourceID | ) |
Log file download.
Write log entry to filelog table and increment download count in filelist table.
| Integer | $resourceID Resource id |
Definition at line 254 of file class.ressourcendb.inc.php.
References $_SESSION, and $db.
00254 { 00255 global $db; 00256 00257 $time = Data::toMysql(time()); 00258 $resourceID = Data::toMysql($resourceID); 00259 $db->query("INSERT INTO filelog (userID, fileID, date) VALUES ('".$_SESSION['userid']."','$resourceID','$time')"); 00260 $db->query("UPDATE filelist SET counter=counter+1 WHERE fileID='$resourceID'"); 00261 }
| static RessourcenDB::saveFolderState | ( | $ | folder | ) | [static] |
Definition at line 70 of file class.ressourcendb.inc.php.
References $_SESSION, and $db.
Referenced by Folder::printSubFolder().
00070 { 00071 global $db; 00072 $folderState = $folder->getFolderState(); 00073 $userid = Data::toMysql( $_SESSION['userid'] ); 00074 $folderID = Data::toMysql( $folder->getID() ); 00075 if ($folderState) { 00076 $db->query("DELETE FROM filetreelayout WHERE userID='".$userid."' AND folderID='".$folderID."'"); 00077 $folder->setFolderState(false); 00078 } else { 00079 $db->query("INSERT INTO filetreelayout (userID, folderID) VALUES ('".$userid."','".$folderID."')"); 00080 $folder->setFolderState(true); 00081 } 00082 }
| RessourcenDB::setFileManager | ( | $ | filemanager | ) |
Definition at line 35 of file class.ressourcendb.inc.php.
References $filemanager.
00035 { 00036 $this->fileManager = $filemanager; 00037 }
RessourcenDB::$fileManager = null [private] |
Definition at line 29 of file class.ressourcendb.inc.php.
Referenced by __construct().
1.6.1